﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
</head>

<body>
    <h2>
        <a id="cb_post_title_url" href="https://www.cnblogs.com/drubber/p/5845014.html"><span role="heading" aria-level="2">QuartZ Cron表达式</span> </a>
        <button title="显示目录导航" aria-expanded="false"></button>
    </h2>
    <div>
        <div id="cnblogs_post_body">
            <h2 id="blogTitle0"> </h2>
            <h2 id="blogTitle1">Cron Expressions</h2>
            <p>cron的表达式被用来配置CronTrigger实例。</p>
            <p>　　cron的表达式是字符串，实际上是由七子表达式，描述个别细节的时间表。</p>
            <p>　　这些子表达式是分开的空白，代表：</p>
            <ol>
                <li><strong> Seconds</strong></li>
                <li><strong> Minutes</strong></li>
                <li><strong> Hours</strong></li>
                <li><strong> Day-of-Month</strong></li>
                <li><strong> Month</strong></li>
                <li><strong> Day-of-Week</strong></li>
                <li><strong> Year (</strong><strong>可选字段</strong><strong>)</strong></li>
                <li></li>
            </ol>
            <p align="left">例  &quot;0 0 12 ? * WED&quot; 在每星期三下午12:00 执行,个别子表达式可以包含范围;</p>
            <p align="left">例如，在前面的例子里(&quot;WED&quot;)可以替换成 &quot;MON-FRI&quot;, &quot;MON, WED, FRI&quot;甚至&quot;MON-WED,SAT&quot;.&ldquo;*&rdquo; 代表整个时间段.</p>
            <p>每一个字段都有一套可以指定有效值，如</p>
            <div>
                <div><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码" /></a></div>
                <pre>Seconds (秒)         ：可以用数字0－59 表示，  Minutes(分)          ：可以用数字0－59 表示，  Hours(时)            ：可以用数字0-23表示,  Day-of-Month(天)  　 ：可以用数字1-31 中的任一一个值，但要注意一些特别的月份  Month(月)            ：可以用0-11 或用字符串  &ldquo;JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC&rdquo; 表示  Day-of-Week(每周)　　 ：可以用数字1-7表示（1 ＝ 星期日）或用字符口串&ldquo;SUN, MON, TUE, WED, THU, FRI and SAT&rdquo;表示<br /><br />
</pre>
                <p>　&ldquo;*&rdquo;：指定所有的值，比如，Minutes 设置为 *，表示每分钟</p>
                <p>  &ldquo;/&rdquo;：为特别单位，表示为&ldquo;每&rdquo;如&ldquo;0/15&rdquo;表示每隔15分钟执行一次,&ldquo;0&rdquo;表示为从&ldquo;0&rdquo;分开始, &ldquo;3/20&rdquo;表示表示每隔20分钟执行一次，&ldquo;3&rdquo;表示从第3分钟开始执行</p>
                <p>　&ldquo;?&rdquo;：表示每月的某一天，或第周的某一天</p>
                <p>　&ldquo;L&rdquo;：用于每月，或每周，表示为每月的最后一天，或每个月的最后星期几如&ldquo;6L&rdquo;表示&ldquo;每月的最后一个星期五&rdquo;</p>
                <p>　&ldquo;W&rdquo;：表示为最近工作日，如&ldquo;15W&rdquo;放在每月（day-of-month）字段上表示为&ldquo;到本月15日最近的工作日&rdquo;</p>
                <p>　&ldquo;#&rdquo;：是用来指定&ldquo;的&rdquo;每月第n个工作日,例 在每周（day-of-week）这个字段中内容为&quot;6#3&quot; or &quot;FRI#3&quot; 则表示&ldquo;每月第三个星期五&rdquo;</p>
                <div><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码" /></a></div>
            </div>
            <p><strong>注意:  </strong>Day-of-Month 和 Day-of-Week不可同时为 * ，否则报错：</p>
            <div><img id="code_img_closed_cc5de4c3-d819-4261-983c-527d7ab91207" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt="" /> RuntimeException</div>
            <p>CronExpression 源码：</p>
            <div><img id="code_img_closed_9b34d375-4810-4aba-9e5f-3d7e2180bb39" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt="" /> CronExpression 部分代码</div>
            <p>1）Cron表达式的格式：秒 分 时 日 月 周 年(可选)。</p>
            <p>
                字段名                 允许的值                        允许的特殊字符  <br />
                秒                         0-59                               , - * /  <br />
                分                         0-59                               , - * /  <br />
                小时                      0-23                               , - * /  <br />
                日                         1-31                               , - * ? / L W C  <br />
                月                         1-12 or JAN-DEC         , - * /  <br />
                周几                      1-7 or SUN-SAT           , - * ? / L C #  <br />
                年 (可选字段)          empty, 1970-2099      , - * /
            </p>
            <p> </p>
            <p>     &ldquo;?&rdquo;字符：表示不确定的值</p>
            <p>     &ldquo;,&rdquo;字符：指定数个值</p>
            <p> 　 &ldquo;-&rdquo;字符：指定一个值的范围</p>
            <p>     &ldquo;/&rdquo;字符：指定一个值的增加幅度。n/m表示从n开始，每次增加m</p>
            <p>     &ldquo;L&rdquo;字符：用在日表示一个月中的最后一天，用在周表示该月最后一个星期X</p>
            <p>     &ldquo;W&rdquo;字符：指定离给定日期最近的工作日(周一到周五)</p>
            <p>      &ldquo;#&rdquo;字符：表示该月第几个周X。6#3表示该月第3个周五</p>
            <p> </p>
            <p>2）Cron表达式范例：</p>
            <div>
                <div><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码" /></a></div>
                <pre> 每隔5秒执行一次：*/5 * * * * ?   每隔1分钟执行一次：0 */1 * * * ?   每天23点执行一次：0 0 23 * * ?   每天凌晨1点执行一次：0 0 1 * * ?   每月1号凌晨1点执行一次：0 0 1 1 * ?   每月最后一天23点执行一次：0 0 23 L * ?   每周星期天凌晨1点实行一次：0 0 1 ? * L   在26分、29分、33分执行一次：0 26,29,33 * * * ?   每天的0点、13点、18点、21点都执行一次：0 0 0,13,18,21 * * ?<br /> 每天的7点到21点都执行一次：0 0 7-21 * * ?</pre>
                <div><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="复制代码"><img src="https://common.cnblogs.com/images/copycode.gif" alt="复制代码" /></a></div>
            </div>
        </div>
    </div>
</body>
</html>
